package org.jeecg.modules.mes.mapper;

import java.util.List;
import java.util.Date;

import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mes.entity.MesEmployeePieceWage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * @Description: 员工计件工资记录表
 * @Author: jeecg-boot
 * @Date: 2025-01-01
 * @Version: V1.0
 */
public interface MesEmployeePieceWageMapper extends BaseMapper<MesEmployeePieceWage> {

    /**
     * 获取员工工资统计
     * @param employeeId 员工ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 工资记录列表
     */
    List<MesEmployeePieceWage> getEmployeeWageStats(@Param("employeeId") String employeeId,
                                                   @Param("startDate") Date startDate,
                                                   @Param("endDate") Date endDate);

    /**
     * 获取员工日工资统计
     * @param employeeId 员工ID
     * @param workDate 工作日期
     * @return 当日工资记录列表
     */
    List<MesEmployeePieceWage> getDailyWageByEmployee(@Param("employeeId") String employeeId,
                                                     @Param("workDate") Date workDate);

    /**
     * 获取任务相关的工资记录
     * @param taskId 任务ID
     * @return 工资记录列表
     */
    List<MesEmployeePieceWage> getWageRecordsByTask(@Param("taskId") String taskId);

    /**
     * 获取待结算的工资记录
     * @param employeeId 员工ID
     * @return 待结算工资记录列表
     */
    List<MesEmployeePieceWage> getPendingSettlementWages(@Param("employeeId") String employeeId);
}
